import { ModuleWithProviders, NgModule } from '@angular/core';
import { CommonModule } from '@angular/common';
import { CoreModule } from '@abp/ng.core';
import { ACCOUNT_ROUTE_PROVIDERS } from './account.route.provider';
import { ReactiveFormsModule, FormsModule } from '@angular/forms';
import { NzFormModule } from 'ng-zorro-antd/form';
import { NzButtonModule } from 'ng-zorro-antd/button';
import { NzInputModule } from 'ng-zorro-antd/input';
import { NzIconModule } from 'ng-zorro-antd/icon';

import { AccountRoutingModule } from './account-routing.module';
import { LoginComponent } from './login/login.component';

@NgModule({
  declarations: [LoginComponent],
  imports: [
    CommonModule,
    CoreModule,
    ReactiveFormsModule,
    FormsModule,
    NzFormModule,
    NzButtonModule,
    NzInputModule,
    NzIconModule,
    AccountRoutingModule,
  ],
})
export class AccountModule {
  static forRoot(): ModuleWithProviders<AccountModule> {
    return {
      ngModule: AccountModule,
      providers: [ACCOUNT_ROUTE_PROVIDERS],
    };
  }
}
